package com.itlong.cloud.enumerate;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 *<desc>
 *     系统类型枚举类
 *</desc>
 *
 * @createDate 2017/10/16
 */
public enum SystemTypeEnum {

    OPERATE("运营",1),          //运营
    PROPERTY("物业",2),          //物业
    IOS("IOS",3),               //IOS
    ANDROID("安卓",4),        //安卓
    SMART_CARD("一卡通",5),  //一卡通
    SDK_SERVER("SDK服务端",6), //SDK服务端
    CLOUD_TALK_SERVER("云对讲服务端",7),//云对讲设备登录服务端
    CLOUD_ELEVATOR_SERVER("云电梯服务端",8),
    CLOUD_TALK_SDK_SERVER("云对讲SDK服务端",9),    //云对讲SDK服务端
    ROBOT("机器人",10),    //机器人
    MINI_PROGRAM("小程序",11),    //小程序
    PROPERTY_APP("物业App",12)    //物业app
    ;
    private String description;
    private Integer type;


    SystemTypeEnum(String value, Integer type) {
        this.type = type;
        this.description = value;
    }

    /**
     * {@link #description}的getter。
     */
    public String getDescription() {
        return description;
    }

    /**
     * {@link #type}的getter。
     */
    public Integer getType() {
        return type;
    }



    /**
     * <p>
     *     获取枚举的描述。
     * <p/>
     *
     * @param type  类型值。
     * @return {@link String}。
     */
    public static String getDescription(int type){
        SystemTypeEnum[] types = SystemTypeEnum.values();
        for(SystemTypeEnum limitCategory : types ){
            if(limitCategory.getType() == type){
                return limitCategory.getDescription();
            }
        }
        return null;
    }


    /**
     * <p>
     *     获取枚举的类型。
     * <p/>
     *
     * @param type  类型值。
     * @return {@link int}。
     */
    public static int getType(Integer type) {
        SystemTypeEnum[] types = SystemTypeEnum.values();
        for(SystemTypeEnum limitCategory : types ){
            if(limitCategory.getType() == type){
                return limitCategory.getType();
            }
        }
        return 0 ;
    }



    /**
     * <p>
     *     获取枚举的list。
     * <p/>
     *
     * @return {@link java.util.List}。
     */
    public static List<Map> toList() {
        List<Map> mapList = new ArrayList<Map>();
        SystemTypeEnum[] ds = SystemTypeEnum.values();
        for (SystemTypeEnum one : ds) {
            Map<String,Object> term= new HashMap<String,Object>();
            term.put("type",one.getType());
            term.put("description",one.getDescription());
            mapList.add(term);
        }
        return mapList;
    }
}
